In the past, television programming was originally broadcast to viewer's television sets through a radio wave transmission in a defined frequency band referred to as a channel, transmitted from a broadcast tower and received by antennas located at a home. As technology progressed, these broadcast signals were retransmitted over a common access cable infrastructure to the home.
As technology has provided new or improved delivery mechanisms, they have been employed to allow for improved or enhanced television experiences. With the arrival of packet based data networks, and the processing power to properly encode and decode video data at sufficiently high frame rates, Internet Protocol TV (IPTV) is becoming more accessible. IPTV employs a packed based delivery network where infrastructure elements are employed to verify that a given use is authorized to access content before the requested content is delivered to the user.
In packet based networks, broadcasting data is not typically done. Instead data is either sent to a specific node (unicast) or sent to a plurality of nodes (multicast). Many users can join a multicast session, and from the user perspective, this may not show any differences from a conventional broadcast.
In conventional IPTV environments, the network is built upon an Internet Multimedia Subsystem (IMS), an architectural framework which uses a plurality of Internet Protocols (IP) for delivering IP multimedia services to a user. The IMS network employs Session Initiation Protocol (SIP) as a control channel protocol. SIP commands are employed to provide control over the initiation and termination of sessions. The packets containing the actual video content are not delivered through the control session, but instead are delivered in the content delivery session using another protocol such as the Real-time Transport Protocol (RTP).
Reference is now made to FIG. 1a (prior art). In an exemplary IPTV network 100, one or more Open IPTV Terminal Function (OITF) devices, which are often provided in the form of Set Top Boxes (STB), are connected to an IP network via an IMS Gateway (IG) 104 and an access router (not shown). For simplicity, only one OITF device 102 is shown in this example.
It should be understood that an OITF 102, as with many other nodes in an IPTV network, is a device that performs a number of different functions and can be implemented in either dedicated hardware as is typically the case in an STB, or on a general purpose computer. Some components of the device are dedicated to decoding the audio and video data, leaving administration of the network functionality to other components of the device. This is often described by referring to the device as having a data plane and a control plane.
Typically a SIP session is used to create a control session, which in turn, is used to create a content delivery session between a Content Source 108 and an OITF. A SIP session 106a is established between OITF 102 and the IG 104, and an associated SIP session 106b is established between the IG 104 and the IPTV Control Server (IPTV CS) 110, which is used to invoke and tear down RTP sessions, as well to perform other session-related management functions. An RTP session 112 is established between the OITF 102 and the Content Source 108. Note that the IG 104 is acting as a Back to Back User Agent (B2BUA) between the two associated control sessions 106a and 106b that form a single virtual session. Those skilled in the art will appreciate that for the sake of brevity this may be referred to simply as a control session. Alternatively, an HTTP session may be established between the OITF 102 and the IG 104, in lieu of the SIP session 106b. In this case, the IG 104 would still use a SIP session with the IPTV CS 110 and handle all the necessary inter-working between the associated HTTP and SIP control sessions.
At present, there is no mechanism supported by an open standard group in the IPTV space, such as the Open IPTV Forum, that provides for a graceful recovery procedure to allow a node to recover from a failure. An OITF or an IG that experience a failure cannot perform a restart or other recovery mechanism without adversely impacting the user's experience (i.e. a disruption to the user's viewing occurs).
Reference is now made to FIG. 1b (prior art), which shows an existing method for restarting an OITF 102. Following a control session failure 116, software fault, or other type of failure, the OITF 102 performs a restart 118. All user and session data is cleared from the OITF 102, and the session state is lost 120, even though a content delivery session may still be active between the OITF 102 and the content source 108. In order to re-establish a control session, the content delivery session must also be terminated and restarted, as the delivery session is managed by (i.e. initiated, modified, terminated) and associated with the control session. As such, restarting an OITF is equivalent to a full power off-power on condition.
Accordingly, it should be readily appreciated that in order to overcome the deficiencies and shortcomings of the existing solutions, it would be advantageous to have a solution for gracefully recovering from errors and failures without impacting the user.